adaptor pattern